package active;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;

/**
 * @author 陈华旺
 * @version 1.0
 * @date 2023年11月21日 16:55
 * @Description TODO
 */
@WebServlet("/test11")
public class Test11Business extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("/test11 - Test11Business - service");
//        对数据的处理
//        获取请求参数，查询数据库，数据的筛选验证，业务的异常处理
//        模拟数据
        ArrayList<Double> list = new ArrayList<>();
        for (int i = 0; i <20 ; i++) {
            list.add( Math.random() );
        }
//        模拟数据

//        为当前 HttpServletRequest 对象增加自定义属性数据
        req.setAttribute("list",list);

//        在servlet服务的请求访问方法中，通过java的执行代码可以实现servlet之间的切换
//          servlet之间的自动切换分为两种不同的规则
//              1. 转发 : 通过 HttpServletRequest 请求对象调用 getRequestDispatcher 获取请求调度对象
//                       通过请求调度对象的 forward 方法完成转发操作
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/test11/view");
        requestDispatcher.forward(req,resp);
//              2. 重定向 ： 通过 HttpServletResponse 请求对象调用 sendRedirect 进行页面重定向操作
//        resp.sendRedirect("/Servlet_01/test11/view");
//        resp.sendRedirect( req.getContextPath() + "/test11/view");
    }
}
